#!/usr/bin/env node

// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

var childProcess = require('child_process');
var fs = require('fs');
var path = require('path');
var shell = require('child_process').execSync;

var repoRootPath;
try {
  repoRootPath = shellOutput('git rev-parse --show-toplevel');
} catch (error) {
  console.log('ERROR: cannot use dtrun outside of chromium repo');
  process.exit(1);
}

var devtoolsPath = path.join(repoRootPath, 'third_party', 'blink', 'renderer', 'devtools');

if (!isDir(devtoolsPath)) {
  console.log('ERROR: cannot use dtrun outside of chromium repo');
  process.exit(1);
}

var npmPath = shellOutput('which npm');
var args = ['run'];
if (process.argv.length > 2) {
  args.push(process.argv[2]);
  args.push('--');
  args = args.concat(process.argv.slice(3));
}
var child = childProcess.spawn(npmPath, args, {
  cwd: devtoolsPath,
  stdio: 'inherit',
});

function shellOutput(command) {
  return shell(command).toString().trim();
}

function isDir(path) {
  try {
    return fs.statSync(path).isDirectory();
  } catch (error) {
    return false;
  }
}